A computer network generally refers to a group of interconnected wired and/or wireless network devices such as, for example, laptops, mobile phones, servers, fax machines, and printers. The network devices may transfer data units from one network device to another network device. A network device such as a router may comprise a network processor, which may be designed to process the data units.
The network processor may comprise a first set of processing resources and a second set of processing resources which may be, respectively, referred to as a regular processing path and a specialized processing path. The network processor may process the data units using a first set of processing resources if the data units can be processed within a pre-determined period such as a cycle budget. The pre-determined period may be determined such that the data units may be processed to maintain the line rate of arrival of the data units. However, some data units may require more processing time than the pre-determined period and may be sent as an exception to a second set of processing resources.
The network processor may comprise a memory such as a scratch memory, between the regular and specialized processing path, to store the exception data units before the specialized processing path processes the exception data units. However, the exception data units arriving after the scratch memory is full may be filtered or dropped indiscriminately. For example, dropping the exception data units such as address resolution protocol (ARP) packets may result in a delay in arriving at a stable network state. It may be desirable to avoid or reduce such indiscriminate filtering of the exception data units.